// 定义 TabBarItem 接口
interface TabBarItem {
  pagePath: string;
  text: string;
  iconPath: string;
  selectedIconPath: string;
  iconBase64?: string;
  selectedIconBase64?: string;
  isSpecial?: boolean;
}

Component({
  data: {
    selected: 0, // 当前选中的 tabBar 项的索引
    color: "#999999", // 未选中的颜色
    selectedColor: "#3478f6", // 选中时的颜色 - 使用更浅的iOS风格蓝色
    list: [
      {
        pagePath: "/pages/index/index",
        text: "首页",
        iconPath: "home",
        selectedIconPath: "home-fill",
        // 添加对应图标的 Base64 编码，作为加载失败时的备选
        iconBase64: "",
        selectedIconBase64: ""
      },
      {
        pagePath: "/pages/scan/index",
        text: "扫码开台",
        iconPath: "scan",
        selectedIconPath: "scan-fill",
        isSpecial: true, // 特殊项标记，可以应用特殊样式
        // 添加对应图标的 Base64 编码，作为加载失败时的备选
        iconBase64: "",
        selectedIconBase64: ""
      },
      {
        pagePath: "/pages/user/index",
        text: "我的",
        iconPath: "user",
        selectedIconPath: "user-fill",
        // 添加对应图标的 Base64 编码，作为加载失败时的备选
        iconBase64: "",
        selectedIconBase64: ""
      }
    ] as TabBarItem[]
  },
  
  lifetimes: {
    attached() {
      console.log('自定义 tabBar 组件已附加到页面');
      this.setInitialSelected();
    },
    
    ready() {
      console.log('自定义 tabBar 组件已准备就绪');
      // 在 ready 生命周期调用 setInitialSelected 替代不存在的 show 生命周期
      this.setInitialSelected();
    }
  },
  
  pageLifetimes: {
    // 页面显示时触发
    show() {
      console.log('自定义 tabBar 页面 show 生命周期');
      this.setInitialSelected();
    }
  },
  
  methods: {
    // 设置初始选中状态
    setInitialSelected() {
      const pages = getCurrentPages();
      const currentPage = pages[pages.length - 1];
      if (!currentPage) return;
      
      console.log('当前页面路径:', currentPage.route);
      const route = '/' + currentPage.route;
      const tabIndex = this.data.list.findIndex(item => item.pagePath === route);
      
      console.log('匹配的索引:', tabIndex);
      if (tabIndex !== -1 && tabIndex !== this.data.selected) {
        console.log('设置选中项为:', tabIndex);
        this.setData({ selected: tabIndex });
      }
    },
    
    // tabBar 项点击事件处理函数
    switchTab(e: WechatMiniprogram.TouchEvent) {
      const index = e.currentTarget.dataset.index as number;
      const item = this.data.list[index];
      
      console.log('点击了 tabBar 项:', index, item.text);
      
      // 如果点击当前项，不做跳转
      if (this.data.selected === index) return;
      
      // 跳转到对应页面
      wx.switchTab({
        url: item.pagePath
      });
      
      // 更新选中状态
      this.setData({ selected: index });
    }
  }
}); 